home *** CD-ROM | disk | FTP | other *** search
/ SPACE 2 / SPACE - Library 2 - Volume 1.iso / demos / 32 / mailchg.cmd < prev    next >
Encoding:
Text File  |  1986-07-17  |  5.4 KB  |  222 lines

  1. SET TALK OFF
  2. * MAILCHG.PRG
  3. * 2-22-86
  4. *
  5. * CHANGES OR DELETES A RECORD IN MAILLIST.DBF
  6. *******
  7. * FILES
  8. *******
  9. USE MAILLIST INDEX MAILNAME,MAILCOMP,MAILZIP
  10. ASSIGN APPROX(T)
  11. *
  12. *************
  13. *DEFINE VARIABLES
  14. *************
  15. STORE T TO Y.RECBAD  | MAIN LOOP
  16. *
  17. STORE T TO Y.NOANSWER | CHECK ANSWER LOOPS
  18. STORE ' ' TO Y.OK | CHECKANSWER VARIABLE
  19. *
  20. STORE 1 TO Y.READNO | GET NUMBER OFFSET FOR READ 
  21. X.ADD = F | THIS IS NOT THE ADD PROGRAM
  22. *
  23. STORE SPACE(10) TO Y.FIRST_NAME
  24. STORE SPACE(20) TO Y.LAST_NAME,Y.CITY
  25. STORE SPACE(40) TO Y.COMPANY,Y.ADDRESS1,Y.ADDRESS2
  26. STORE SPACE(2) TO Y.STATE
  27. STORE SPACE(5) TO Y.ZIP
  28. STORE SPACE(12) TO Y.PHONE
  29. *
  30. DO WHILE T
  31.     ************
  32.     * PAINT SCREEN
  33.     ************
  34.     ERASE
  35.     &SAYNORMAL
  36.     @ 00,00 SAY CENTER('MAIL LIST CHANGE RECORD',79)
  37.     @ 01,00 SAY CENTER('F1=FIND F2=HELP  F3=QUIT F8=ERASE',79)
  38.     @ 05,00 SAY 'NAME     :'+Y.FIRST_NAME
  39.     @ ROW(),COL()+5 SAY 'LAST NAME :' GET Y.LAST_NAME PICTURE DUPCHAR(33,20)
  40.     @ 07,00 SAY 'COMPANY  :' GET Y.COMPANY PICTURE DUPCHAR(33,40)
  41.     @ 09,00 SAY 'ADDRESS1 :'
  42.     @ 11,00 SAY 'ADDRESS2 :'
  43.     @ 13,00 SAY 'CITY     :' + Y.CITY
  44.     @ ROW(),COL()+3 SAY 'STATE :'+ Y.STATE
  45.     @ ROW(),COL()+3 SAY 'ZIP :'+Y.ZIP
  46.     @ 15,00 SAY 'PHONE    :'+Y.PHONE
  47.     READ
  48.     *****************
  49.     * ADDRESS FUNCTION KEY SECTION 
  50.     * F1 = FIND F2=HELP  F3=QUIT  F8=ERASE 
  51.     *****************
  52.     DO CASE
  53.         **********
  54.         *FIND
  55.         **********
  56.         CASE LASTKEY() = 187 OR LASTKEY() = 6 | F1 OR ^F
  57.             IF GETNO() = 1
  58.                 SET INDEX TO MAILNAME
  59.                 FIND !(Y.LAST_NAME)
  60.             ELSE
  61.                 SET INDEX TO MAILCOMP
  62.                 FIND !(Y.COMPANY)
  63.             ENDIF
  64.             IF EOF()
  65.                 SKIP -1
  66.             ENDIF
  67.         **********
  68.         * HELP
  69.         **********
  70.         CASE LASTKEY()=8 OR LASTKEY()=188 | HELP ^H OR F2
  71.             Y.READNO = GETNO()
  72.             DO MAILCHG1
  73.             LOOP
  74.         **********
  75.         *QUIT
  76.         **********
  77.         CASE LASTKEY() = 17 .OR. LASTKEY() = 27 .OR. LASTKEY() = 189 | QUIT ^Q OR F3
  78.             CLOSE ALL
  79.             RETURN
  80.         **********
  81.         * ERASE SCREEN
  82.         **********
  83.         CASE LASTKEY() = 5 OR LASTKEY() = 194 | ERASE SCREEN ^E OR F8
  84.             DO MAILER
  85.             Y.READNO = GETNO()
  86.             LOOP
  87.         **********
  88.         * END CASES
  89.         **********
  90.         OTHERWISE
  91.             Y.READNO = GETNO()
  92.             LOOP
  93.     ENDCASE
  94.     ERASE
  95.     Y.RECBAD = T
  96.     DO WHILE Y.RECBAD
  97.         ************
  98.         * PAINT SCREEN
  99.         ************
  100.         &SAYNORMAL
  101.         @ 00,00 SAY CENTER('MAIL LIST CHANGE RECORD',79)
  102.         @ 01,00 SAY CENTER('F1 = FIND F2=HELP  F3=QUIT  F4=DELETE  F7=SAVE  F9=PREV  F10=NEXT',79)
  103.         IF DELREC()
  104.             @ 02,00 SAY CENTER('RECORD '+STR(RECNO(),4)+' IS DELETED',79)
  105.         ELSE
  106.             @ 02,00 SAY CENTER('RECORD '+STR(RECNO(),4),79)
  107.         ENDIF
  108.         @ 05,00 SAY 'NAME     :' GET FIRST_NAME PICTURE DUPCHAR(33,10)
  109.         @ ROW(),COL()+5 SAY 'LAST NAME :' GET LAST_NAME PICTURE DUPCHAR(33,20)
  110.         @ 07,00 SAY 'COMPANY  :' GET COMPANY PICTURE DUPCHAR(33,40)
  111.         @ 09,00 SAY 'ADDRESS1 :' GET ADDRESS1 PICTURE DUPCHAR(33,40)
  112.         @ 11,00 SAY 'ADDRESS2 :' GET ADDRESS2 PICTURE DUPCHAR(33,40)
  113.         @ 13,00 SAY 'CITY     :' GET CITY PICTURE DUPCHAR(33,20)
  114.         @ ROW(),COL()+3 SAY 'STATE :' GET STATE PICTURE "UU" GETFILE MAILSTCK
  115.         @ ROW(),COL()+3 SAY 'ZIP :' GET ZIP PICTURE "#####"
  116.         @ 15,00 SAY 'PHONE    :' GET PHONE PICTURE "###-###-####"
  117.         READ GETNO Y.READNO
  118.         @ 24,00 
  119.  
  120.         *****************
  121.         * ADDRESS FUNCTION KEY SECTION 
  122.         * F1 = find F2=HELP  F3=QUIT F4=DELETE F7=SAVE  F8=ERASE F9 = PREV F10 = NEXT
  123.         *****************
  124.         DO CASE
  125.             **********
  126.             *FIND
  127.             **********
  128.             CASE LASTKEY() = 187 OR LASTKEY() = 6 | F1 OR ^F
  129.                 Y.LAST_NAME = LAST_NAME
  130.                 Y.COMPANY = COMPANY
  131.                 SKIP
  132.                 EXIT
  133.             **********
  134.             * HELP
  135.             *********
  136.             CASE LASTKEY()=8 OR LASTKEY()=188 | HELP ^H OR F2
  137.                 Y.READNO = GETNO()
  138.                 DO MAILCHG2
  139.                 LOOP
  140.             **********
  141.             *QUIT
  142.             **********
  143.             CASE LASTKEY() = 17 .OR. LASTKEY() = 27 .OR. LASTKEY() = 189 | QUIT ^Q OR F3
  144.                 CLOSE ALL
  145.                 RETURN
  146.             **********
  147.             * DELETE
  148.             **********
  149.             CASE LASTKEY() = 190 OR LASTKEY() = 4 | F4 OR ^D
  150.                 IF DELREC()
  151.                     RECALL
  152.                 ELSE
  153.                     DELETE
  154.                 ENDIF
  155.                 LOOP
  156.             ***********
  157.             * PRIEVIOUS
  158.             ***********
  159.             CASE LASTKEY() = 195 OR LASTKEY() = 16 | F9 OR ^P
  160.                 SKIP -1
  161.                 IF BOF()
  162.                     @ 24,00 SAY CENTER('BEGINING OF FILE',79)
  163.                     SKIP +1
  164.                 ELSE
  165.                     @ 24,00
  166.                 ENDIF
  167.                 LOOP
  168.             ***********
  169.             *NEXT
  170.             ***********
  171.             CASE LASTKEY() = 196
  172.                 SKIP +1
  173.                 IF EOF()
  174.                     @ 24,00 SAY CENTER('END OF FILE!',79)
  175.                     SKIP -1
  176.                 ELSE
  177.                     @ 24,00
  178.                 ENDIF
  179.                 LOOP
  180.             **********
  181.             * END CASES
  182.             **********
  183.             OTHERWISE
  184.             *************
  185.             * ADDRESS VALADATION
  186.             *************
  187.                 STORE T TO Y.NOANSWER
  188.                 STORE 'Y' TO Y.OK
  189.                 DO WHILE Y.NOANSWER
  190.                     @ 24,00 SAY 'IS ADDRESS OK (Y OR N) ?'   
  191.                     @ 24,26 GET Y.OK
  192.                     READ
  193.                     IF LASTKEY() = 17 .OR. LASTKEY() = 27 .OR. LASTKEY() = 189
  194.                         CLOSE ALL
  195.                         RETURN
  196.                     ENDIF
  197.                     DO CASE
  198.                          CASE !(Y.OK) = 'Y'
  199.                             STORE F TO Y.RECBAD
  200.                             STORE F TO Y.NOANSWER
  201.                             STORE ' ' TO Y.OK
  202.                             @ 24,00
  203.                          CASE !(Y.OK) = 'N'
  204.                                STORE T TO Y.ADDRBAD
  205.                                STORE F TO Y.NOANSWER
  206.                                STORE ' ' TO Y.OK
  207.                                @ 24,00
  208.                                Y.READNO = 1
  209.                         OTHERWISE
  210.                                BEEP
  211.                                STORE T TO Y.NOANSWER
  212.                                STORE ' ' TO Y.OK
  213.                                @ 24,00
  214.                 ENDCASE
  215.             ENDDO
  216.             STORE T TO Y.NOANSWER
  217.         ENDCASE
  218.     ENDDO | WHILE RECORD BAD
  219. ENDDO | WHILE T
  220.